//package com.share.lottery.activity.caibotools;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import android.content.Context;
//import android.content.Intent;
//import android.content.res.Resources;
//import android.graphics.Bitmap;
//import android.graphics.BitmapFactory;
//import android.graphics.Canvas;
//import android.graphics.Color;
//import android.graphics.Paint;
//import android.graphics.Paint.Style;
//import android.graphics.Point;
//import android.graphics.drawable.Drawable;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//
//import android.util.Log;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.Window;
//import android.widget.Button;
//import android.widget.ImageButton;
//import android.widget.TextView;
//
//import com.share.lottery.R;
//import com.share.lottery.activity.caibotools.MapOverlay.OnTapListener;
//import com.share.lottery.base.Constants;
//import com.tencent.tencentmap.mapsdk.map.GeoPoint;
//import com.tencent.tencentmap.mapsdk.map.ItemizedOverlay;
//import com.tencent.tencentmap.mapsdk.map.MapActivity;
//import com.tencent.tencentmap.mapsdk.map.MapController;
//import com.tencent.tencentmap.mapsdk.map.MapView;
//import com.tencent.tencentmap.mapsdk.map.Overlay;
//import com.tencent.tencentmap.mapsdk.map.OverlayItem;
//import com.tencent.tencentmap.mapsdk.map.Projection;
//import com.tencent.tencentmap.mapsdk.map.RouteOverlay;
//import com.tencent.tencentmap.mapsdk.route.QPlaceInfo;
//import com.tencent.tencentmap.mapsdk.route.QRouteSearchResult;
//import com.tencent.tencentmap.mapsdk.route.RouteSearch;
//import com.tencent.tencentmap.mapsdk.search.PoiItem;
//import com.tencent.tencentmap.mapsdk.search.PoiResults;
//import com.tencent.tencentmap.mapsdk.search.PoiSearch;
//
///**
// * @author py
// *ItemizedOverlay实现地图上给定位置用自定义图片标三个点 
// */
//public class BuildMapActivity extends MapActivity {
//	PoiSearch poiSearch;
//	MapView mMapView;
//	MapController mMapController;
//	View viewTip=null;
//	MapOverlay mapOverlay=null;
//
//	int iTipTranslateX=0;
//	int iTipTranslateY=0;
//
//	public double lat = 0;
//	public double lon = 0;
//	private String buildName = "测试数据";
//
//	RouteOverlay busRouteOverlay=null;
//	RouteOverlay driveRouteOverlay=null;
//
//
//	QRouteSearchResult driveSearchResult=null;
//	RouteSearch routeSearch = null;
//	QPlaceInfo placeStart = null;
//	QPlaceInfo placeEnd = null;
//
//	@Override
//	protected void onCreate(Bundle savedInstanceState) {
//		// TODO Auto-generated method stub
//		super.onCreate(savedInstanceState);
//
//		requestWindowFeature(Window.FEATURE_NO_TITLE);
//		setContentView(R.layout.build_map);
//		poiSearch = new PoiSearch(this);
//		Intent intent = getIntent();
//		lat = Constants.Latitude;//Double.valueOf(intent.getStringExtra("LAT"));
//		lon = Constants.Longitude;//Double.valueOf(intent.getStringExtra("LON"));
//		//		buildName = intent.getStringExtra("BUILD_NAME");
//
//		LayoutInflater layoutInfla = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
//		viewTip=layoutInfla.inflate(R.layout.build_map_tip, null);
//
//		//		TextView text_build_name = (TextView)viewTip.findViewById(R.id.text_build_name);
//		//		text_build_name.setText(buildName);
//
//		mMapView = (MapView) findViewById(R.id.itemizedoverlayview);
//		mMapView.setBuiltInZoomControls(true); //设置启用内置的缩放控件
//		mMapController = mMapView.getController();
//
//		mMapView.getController().setZoom(12);
//
//		if(Constants.Latitude!=0 && Constants.Longitude!=0){
//			Bitmap bmpMarker=null;
//			Resources res=this.getResources();
//			bmpMarker=BitmapFactory.decodeResource(res, R.drawable.map_mark_location);
//
//			SimulateLocationOverlay simuOvelay=new SimulateLocationOverlay(bmpMarker);
//			mMapView.addOverlay(simuOvelay);
//
//			GeoPoint geoSimulateLocation=new GeoPoint((int)(Constants.Latitude*1e6), (int)(Constants.Longitude*1e6));
//
//			simuOvelay.setGeoCoords(geoSimulateLocation);
//			simuOvelay.setAccuracy(5000);
//		}
//
//		GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6)); // 用给定的经纬度构造一个GeoPoint，单位是微度// (度
//		mMapView.getController().setCenter(point); 
//
//		Drawable marker = getResources().getDrawable(R.drawable.map_markpoint);  //得到需要标在地图上的资源
//
//		this.iTipTranslateY=marker.getIntrinsicHeight();
//
//		marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker
//				.getIntrinsicHeight());   //为maker定义位置和边界
//		seachPoi();
//		//		mapOverlay=new MapOverlay(marker, this,lat,lon,poiSearch);
//		//
//		//		mapOverlay.setOnTapListener(onTapListener);
//		//		mMapView.addOverlay(mapOverlay); //添加标注，可以通过mMapView.getOverlays().remove删除标注，删除后可以通过mapview.refreshMap()刷新地图   
//		//		//添加ItemizedOverlay实例到mMapView
//		mMapView.invalidate();  //刷新地图      
//
//
//
//
//	}
//
//	Handler handler2 = new Handler(){
//
//		public void handleMessage(Message msg) {
//			if (msg.what == 1) {
//
//
//				List<OverlayItem> datas = (List<OverlayItem>) msg.obj;
//				Drawable marker = getResources().getDrawable(R.drawable.map_markpoint);  //得到需要标在地图上的资源
//				if (datas != null) {
//					mapOverlay=new MapOverlay(marker, BuildMapActivity.this,datas);
//					mapOverlay.setOnTapListener(onTapListener);
//					mMapView.addOverlay(mapOverlay); //添加标注，可以通过mMapView.getOverlays().remove删除标注，删除后可以通过mapview.refreshMap()刷新地图   
//					//mMapView.refreshMap();
//				}
//			}
//
//			//添加ItemizedOverlay实例到mMapView
//		};
//
//	};
//	private void seachPoi(){
//		AdressTask task = new AdressTask(handler2, poiSearch);
//		new Thread(task).start();
//
//	}
//	private TextView text_build_name;
//
//	OnTapListener onTapListener=new OnTapListener(){
//
//
//
//
//		public void onTap(OverlayItem itemTap) {
//			String s = itemTap.getTitle();
//			String y = itemTap.getSnippet();
//
//			text_build_name = (TextView)viewTip.findViewById(R.id.text_build_name);
//			//			text_build_name.setText(buildName);
//			Log.i("test", "当前点击="+itemTap.getSnippet()+"---"+s);
//			text_build_name.setText(y);
//			if(viewTip==null||itemTap==null)
//			{
//				return;
//			}
//			MapView.LayoutParams layParaOntap=new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT,MapView.LayoutParams.WRAP_CONTENT,itemTap.getPoint(),iTipTranslateX,-iTipTranslateY,MapView.LayoutParams.BOTTOM_CENTER);
//			if(mMapView.indexOfChild(viewTip)==-1)
//			{
//
//				mMapView.addView(viewTip,layParaOntap);
//			}
//			else
//			{
//				mMapView.updateViewLayout(viewTip,layParaOntap);
//			}
//		}
//
//
//		public void onEmptyTap(GeoPoint pt) {
//			// TODO Auto-generated method stub
//			if(mMapView.indexOfChild(viewTip)>=0)
//			{
//				mMapView.removeView(viewTip);
//			}
//		}};
//
//		class SimulateLocationOverlay extends Overlay {
//
//			GeoPoint geoPoint;
//			Bitmap bmpMarker;
//			float fAccuracy=0f;
//
//
//			public SimulateLocationOverlay(Bitmap mMarker) {
//				bmpMarker = mMarker;
//			}
//
//			public void setGeoCoords(GeoPoint geoSimulateLoc)
//			{
//				if(geoPoint==null)
//				{
//					geoPoint=new GeoPoint(geoSimulateLoc.getLatitudeE6(),geoSimulateLoc.getLongitudeE6());
//				}
//				else
//				{
//					geoPoint.setLatitudeE6(geoSimulateLoc.getLatitudeE6());
//					geoPoint.setLongitudeE6(geoSimulateLoc.getLongitudeE6());
//				}
//			}
//
//			public void setAccuracy(float fAccur)
//			{
//				fAccuracy=fAccur;
//			}
//
//			@Override
//			public void draw(Canvas canvas, MapView mapView) {
//				if(geoPoint==null)
//				{
//					return;
//				}
//				Projection mapProjection = mapView.getProjection();
//				Paint paint = new Paint();
//				Point ptMap = mapProjection.toPixels(geoPoint, null);
//				paint.setColor(Color.BLUE);
//				paint.setAlpha(8);
//				paint.setAntiAlias(true);
//
//				float fRadius=mapProjection.metersToEquatorPixels(fAccuracy);
//				canvas.drawCircle(ptMap.x, ptMap.y, fRadius, paint);
//				paint.setStyle(Style.STROKE);
//				paint.setAlpha(200);
//				canvas.drawCircle(ptMap.x, ptMap.y, fRadius, paint);
//
//				if(bmpMarker!=null)
//				{
//					paint.setAlpha(255);
//					canvas.drawBitmap(bmpMarker, ptMap.x - bmpMarker.getWidth() / 2, ptMap.y
//							- bmpMarker.getHeight() / 2, paint);
//				}
//
//				super.draw(canvas, mapView);
//			}
//		}
//
//		private void searchBusRoute()
//		{
//			RouteSearch routeSearch=new RouteSearch(this);
//			QPlaceInfo placeStart=new QPlaceInfo();
//			placeStart.point=new GeoPoint((int)(Constants.Latitude*1e6),(int)(Constants.Longitude*1e6));
//			QPlaceInfo placeEnd=new QPlaceInfo();
//			placeEnd.point=new GeoPoint((int)(lat*1e6),(int)(lon*1e6));
//
//			QRouteSearchResult busRouteResult=null;
//			try {
//				busRouteResult=routeSearch.searchBusRoute("成都", placeStart, placeEnd);
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			if(busRouteResult==null)
//			{
//				return;
//			}
//
//			if(busRouteOverlay==null)
//			{
//				busRouteOverlay=new RouteOverlay();
//				mMapView.addOverlay(busRouteOverlay);
//			}
//			busRouteOverlay.setBusRouteInfo(busRouteResult.busRoutePlanInfo.routeList.get(0));
//
//			busRouteOverlay.showInfoWindow(0);
//
//			zoomToSpan(busRouteResult.busRoutePlanInfo.routeList.get(0).routeNodeList);
//		}
//
//		//		private void searchDriveRoute(){
//		//			routeSearch=new RouteSearch(this);
//		//			placeStart=new QPlaceInfo();
//		//			placeStart.point=new GeoPoint((int)(Constants.Latitude*1e6),(int)(Constants.Longitude*1e6));
//		//			placeEnd=new QPlaceInfo();
//		//			placeEnd.point=new GeoPoint((int)(lat*1e6),(int)(lon*1e6));
//		//			try {
//		//				new Thread(
//		//						new Runnable() {
//		//							@Override
//		//							public void run() {
//		//								try {
//		//									driveSearchResult=routeSearch.searchDriveRoute("成都", placeStart, "成都", placeEnd);
//		//								} catch (Exception e) {
//		//									// TODO Auto-generated catch block
//		//									e.printStackTrace();
//		//								}
//		//								Message message = new Message();
//		//								message.obj = driveSearchResult;
//		//								handler.sendMessage(message);
//		//							}
//		//						}
//		//						).start();
//		//			} catch (Exception e) {
//		//				e.printStackTrace();
//		//				return;
//		//			}
//		//
//		//		}
//
//		Handler handler = new Handler(){
//			@Override
//			public void handleMessage(Message msg) {
//				// TODO Auto-generated method stub
//				super.handleMessage(msg);
//				if(driveSearchResult==null){
//					return;
//				}
//				if(driveRouteOverlay==null){
//					driveRouteOverlay=new RouteOverlay();
//					mMapView.addOverlay(driveRouteOverlay);
//				}
//				driveRouteOverlay.setDriveRouteInfo(driveSearchResult.driveRouteInfo);
//				driveRouteOverlay.showInfoWindow(0);
//			}
//		};
//
//
//		/**
//		 * 把地图视图缩放到刚好显示路线   
//		 * @param listPts
//		 */
//		private void zoomToSpan(List<GeoPoint> listPts)
//		{
//			if(listPts==null)
//			{
//				return;
//			}
//			int iPtSize=listPts.size();
//			if(iPtSize<=0)
//			{
//				return;
//			}
//
//			GeoPoint geoPtLeftUp=null;
//			GeoPoint geoPtRightDown=null;  //获取路径点的左上角点，和右下角点   
//
//			GeoPoint geoPt=null;
//			for(int i=0;i<iPtSize;i++)
//			{
//				geoPt=listPts.get(i);
//				if(geoPt==null)
//				{
//					continue;
//				}
//				if(geoPtLeftUp==null)
//				{
//					geoPtLeftUp=new GeoPoint(geoPt.getLatitudeE6(),geoPt.getLongitudeE6());
//				}
//				else
//				{
//					if(geoPtLeftUp.getLatitudeE6()<geoPt.getLatitudeE6())
//					{
//						geoPtLeftUp.setLatitudeE6(geoPt.getLatitudeE6());
//					}
//					if(geoPtLeftUp.getLongitudeE6()>geoPt.getLongitudeE6())
//					{
//						geoPtLeftUp.setLongitudeE6(geoPt.getLongitudeE6());
//					}
//				}
//
//				if(geoPtRightDown==null)
//				{
//					geoPtRightDown=new GeoPoint(geoPt.getLatitudeE6(),geoPt.getLongitudeE6());
//				}
//				else
//				{
//					if(geoPtRightDown.getLatitudeE6()>geoPt.getLatitudeE6())
//					{
//						geoPtRightDown.setLatitudeE6(geoPt.getLatitudeE6());
//					}
//					if(geoPtRightDown.getLongitudeE6()<geoPt.getLongitudeE6())
//					{
//						geoPtRightDown.setLongitudeE6(geoPt.getLongitudeE6());
//					}
//				}
//
//			}
//
//			if(geoPtLeftUp==null||geoPtRightDown==null)
//			{
//				return;
//			}
//			mMapView.getController().zoomToSpan(geoPtLeftUp, geoPtRightDown);
//		}
//}
//
//
//
//class MapOverlay extends ItemizedOverlay<OverlayItem> {
//	private List<OverlayItem> itemList = new ArrayList<OverlayItem>();
//	//	private Context mContext;
//	private OnTapListener tapListener=null;
//
//
//	public MapOverlay(Drawable marker, Context context,List<OverlayItem> myitemList) {
//		//	super(boundCenterBottom(marker));
//		super(context);
//		// 用给定的经纬度构造GeoPoint，单位是微度 (度 * 1E6)
//		//		GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6));
//		//		OverlayItem itemNntDrag=new OverlayItem(p, "", "");
//		//		itemNntDrag.setDragable(false);
//		itemList.clear();
//		itemList.addAll(myitemList);
//		populate();  //createItem(int)方法构造item。一旦有了数据，在调用其它方法前，首先调用这个方法
//
//
//	}
//
//	@Override
//	public void draw(Canvas canvas, MapView mapView) {
//
//		// Projection接口用于屏幕像素点坐标系统和地球表面经纬度点坐标系统之间的变换
//		Projection projection = mapView.getProjection(); 
//		for (int index = size() - 1; index >= 0; index--) { // 遍历GeoList
//			OverlayItem overLayItem = getItem(index); // 得到给定索引的item
//
//			String title = overLayItem.getTitle();
//			// 把经纬度变换到相对于MapView左上角的屏幕像素坐标
//			Point point = projection.toPixels(overLayItem.getPoint(), null); 
//
//			Paint paintCircle = new Paint();
//			paintCircle.setColor(Color.RED);
//			canvas.drawCircle(point.x, point.y, 5, paintCircle); // 画圆
//
//			Paint paintText = new Paint();
//			paintText.setColor(Color.BLACK);
//			paintText.setTextSize(15);
//			canvas.drawText(title, point.x, point.y - 25, paintText); // 绘制文本
//
//		}
//
//		super.draw(canvas, mapView);
//	}
//
//	@Override
//	protected OverlayItem createItem(int i) {
//		// TODO Auto-generated method stub
//		return itemList.get(i);
//	}
//
//	@Override
//	public int size() {
//		// TODO Auto-generated method stub
//		return itemList.size();
//	}
//
//	@Override
//	protected boolean onTap(int i) {
//		OverlayItem itemSelect=itemList.get(i);
//		setFocus(itemSelect);
//		if(tapListener!=null)
//		{
//			tapListener.onTap(itemSelect);
//		}
//		return true;
//	}
//
//
//
//	@Override
//	public void onEmptyTap(GeoPoint pt) {
//
//		super.onEmptyTap(pt);
//
//		if(tapListener!=null)
//		{
//			tapListener.onEmptyTap(pt);
//		}
//	}
//
//
//
//	interface OnTapListener
//	{
//		void onTap(OverlayItem itemTap);
//		void onEmptyTap(GeoPoint pt);
//	}
//
//	public void setOnTapListener(OnTapListener listnerTap)
//	{
//		tapListener=listnerTap;
//	}
//
//}
